在還不會自己建模型的時候,今天先試著用已經訓練過的模型來做最基本的圖片辨識,會列出所有已經訓練過的模型,我用網路上薩摩耶的圖片
(圖片來源:https://www.dcard.tw/f/pet/p/233192736)
from torchvision import models
import torch
dir(models)
可以看到很多可以用的模型種類
net = models.efficientnet_b0(pretrained=True)
net
輸入這些後就可以直接下載模型來使用,以上步驟和DAY4的torchhub有一點像,輸入net會輸出這個模型的基本資訊。
from torchvision import transforms
process = transforms.Compose([
transforms.Resize(256),
transforms.CenterCrop(224),
transforms.ToTensor(),
transforms.Normalize(
mean=[0.4, 0.5, 0.4],
std=[0.28, 0.24, 0.26]
)])
對輸入圖片做出一些處理,若是更改mean std都會對輸出結果有一定程度的影響。
from PIL import Image
img = Image.open("圖片路徑")
img1 = process(img)
載入圖片然後做一些處理
with open('/imagenet_classes.txt') as f:
labels = [line.strip() for line in f.readlines()]
_, index = torch.max(out, 1)
載入類別表
輸出最有可能的種類
[(labels[idx], percentage[idx].item()) for idx in indices[0][:5]]
輸出前五名,我們可以藉由輸出的前五名分析結果。
其餘四項也都是犬類,甚至也有容易跟薩摩耶混淆的白狐狸,而薩摩耶也確實實信心分數最高的。